package scala.day02

import scala.collection.mutable
import scala.collection.mutable.ListBuffer

object Demo10Mutable {
  def main(args:Array[String]):Unit = {
    /**
      *
      * 可变集合
      * scala.collection.mutable 可变集合所在的包
      * scala.collection.immutable 不可变集合所在的包
      */
    //可变List
    val listBuffer = new ListBuffer[Int]
    //在集合中增加元素
    listBuffer += 1
    listBuffer += 2
    listBuffer += 3
    listBuffer += 4
    //这里面+=不是运算符，而是一种方法
    println(listBuffer)
    //一次性增加多种元素
    listBuffer ++=List(1,2,3,4,5,6,7)
    println(listBuffer)
    //指定下标插入元素
    listBuffer.insert(2,100)
    println(listBuffer)
    //指定下标更新元素
    listBuffer.update(2,1000)
    println(listBuffer)
    //删除指定的元素（只能删除一个）
    listBuffer.-=(2)
    println(listBuffer)
    //通过下标获取元素
    println(listBuffer(2))
    //List中有的方法ListBuffer都有
    //类型转化
    val list: List[Int] = listBuffer.toList

    /**
      * hashMap
      */
    val hashMap = new mutable.HashMap[String,Int]()

    //增加元素
    hashMap.+=(("111",23))
    hashMap +="000"->24
    println(hashMap)
    //删除元素
    hashMap.remove("002")
    hashMap.-=("000")
    println(hashMap)
    //更新元素，如果元素不存在，增加元素
    hashMap.update("003",25)
    println(hashMap)
    hashMap("004") = 20
    println(hashMap)
    //map中有的方法HashMap都有
    /**
      * HashSet
      */
    val hashSet = new mutable.HashSet[Int]()
    //增加和删除元素
    hashSet += 1
    hashSet += 2
    hashSet +=3
    hashSet.add(4)
    println(hashSet)
    hashSet.remove(4)
    println(hashSet)
    hashSet -=(3)
    println(hashSet)
  }
}
